home *** CD-ROM | disk | FTP | other *** search
/ Sprite 1984 - 1993 / Sprite 1984 - 1993.iso / src / lib / c / unixSyscall / RCS / access.c,v < prev    next >
Text File  |  1991-11-27  |  2KB  |  122 lines

  1. head     1.2;
  2. branch   ;
  3. access   ;
  4. symbols  sprited:1.2.1;
  5. locks    ; strict;
  6. comment  @ * @;
  7.  
  8.  
  9. 1.2
  10. date     88.08.10.11.38.58;  author ouster;  state Exp;
  11. branches 1.2.1.1;
  12. next     1.1;
  13.  
  14. 1.1
  15. date     88.06.19.14.31.02;  author ouster;  state Exp;
  16. branches ;
  17. next     ;
  18.  
  19. 1.2.1.1
  20. date     91.11.27.13.12.08;  author kupfer;  state Exp;
  21. branches ;
  22. next     ;
  23.  
  24.  
  25. desc
  26. @@
  27.  
  28.  
  29. 1.2
  30. log
  31. @Forgot to pass 3rd parameter to Fs_CheckAccess to insist on using
  32. real uid, not effective.
  33. @
  34. text
  35. @/* 
  36.  * access.c --
  37.  *
  38.  *    Procedure to map from Unix access system call to Sprite.
  39.  *
  40.  * Copyright 1986 Regents of the University of California
  41.  * All rights reserved.
  42.  */
  43.  
  44. #ifndef lint
  45. static char rcsid[] = "$Header: access.c,v 1.1 88/06/19 14:31:02 ouster Exp $ SPRITE (Berkeley)";
  46. #endif not lint
  47.  
  48. #include "sprite.h"
  49. #include "fs.h"
  50. #include "proc.h"
  51.  
  52. #include "compatInt.h"
  53. #include <errno.h>
  54. #include <sys/file.h>
  55.  
  56. /*
  57.  *----------------------------------------------------------------------
  58.  *
  59.  * access --
  60.  *
  61.  *    Procedure for Unix access call. 
  62.  *
  63.  * Results:
  64.  *    UNIX_SUCCESS if the access mode was valid.
  65.  *    UNIX_FAILURE if the access mode was not valid.
  66.  *
  67.  * Side effects:
  68.  *    None.
  69.  *
  70.  *----------------------------------------------------------------------
  71.  */
  72.  
  73. int
  74. access(pathName, mode)
  75.     char *pathName;        /* The name of the file to open */
  76.     int     mode;            /* access mode to test for */
  77. {
  78.     int spriteMode;
  79.     ReturnStatus status;
  80.  
  81.     if (mode == F_OK) {
  82.     spriteMode = FS_EXISTS;
  83.     } else {
  84.     spriteMode = ((mode&R_OK)?FS_READ:0) | ((mode&W_OK)?FS_WRITE:0) |
  85.         ((mode&X_OK)?FS_EXECUTE:0);
  86.     }
  87.  
  88.     status = Fs_CheckAccess(pathName, spriteMode, TRUE);
  89.     if (status != SUCCESS) {
  90.     errno = Compat_MapCode(status);
  91.     return(UNIX_ERROR);
  92.     } else {
  93.     return(UNIX_SUCCESS);
  94.     }
  95. }
  96. @
  97.  
  98.  
  99. 1.2.1.1
  100. log
  101. @Initial branch for Sprite server.
  102. @
  103. text
  104. @d11 1
  105. a11 1
  106. static char rcsid[] = "$Header: /sprite/src/lib/c/unixSyscall/RCS/access.c,v 1.2 88/08/10 11:38:58 ouster Exp $ SPRITE (Berkeley)";
  107. @
  108.  
  109.  
  110. 1.1
  111. log
  112. @Initial revision
  113. @
  114. text
  115. @d11 1
  116. a11 1
  117. static char rcsid[] = "$Header: access.c,v 1.5 87/08/21 17:31:57 deboor Exp $ SPRITE (Berkeley)";
  118. d54 1
  119. a54 1
  120.     status = Fs_CheckAccess(pathName, spriteMode);
  121. @
  122.